Remove the unused push notification prompt and Firebase messaging stack - #137
Merged
manuelgeek merged 1 commit intoAug 5, 2026
Merged
Conversation
…g stack The site prompted every first-time visitor for notification permission, but no push notifications are ever sent. Remove the modal along with the rest of the dead stack: the FCM topic-subscription API route, the Firebase app init, the background-message service worker, the NOTIFICATIONS constant and its now-empty module, the modal artwork, the firebase dependency, and the unused NEXT_PUBLIC_FIREBASE_* and NEXT_PUBLIC_MESSAGING_TOPIC entries in .env.example. react-toastify stays; SessionFeedback still uses it. Closes #136
manuelgeek
added a commit
that referenced
this pull request
Aug 18, 2026
* docs: add home redesign / 2026 rebrand plan + design assets Adds the landing-page rebrand plan (docs/design/REDESIGN-PLAN.md) with section-by-section gap analysis and phased build order, the new-design image assets, and layout-reference mockups. Display font is Rauschen B (licensed; files kept out of the public repo via .gitignore). Refs #123 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: defer font wiring to follow-up issue #125 Font self-hosting (Rauschen B woff2 via @font-face) is tracked separately so this PR stays docs/assets-only. Refs #125 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat: update color palette and adjust active link styles for consistency * feat: update tailwind configuration and lockfile dependencies * docs: defer font wiring to follow-up issue #125 Font self-hosting (Rauschen B woff2 via @font-face) is tracked separately so this PR stays docs/assets-only. Refs #125 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: point font to private repo, drop local archive reference The licensed font now lives in droidconKE/private-fonts and is injected at build time; removed the reference to the local zip archive. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * style: update font-slab to Rubik and remove unused accent colors from tailwind config * feat: expand black color palette and add droidcon-1 and droidcon-2 color scales to tailwind configuration * docs: document central-branch workflow for redesign PRs All redesign sub-PRs target feat/home-redesign-plan (not dev); that branch merges to dev once the full redesign is approved. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Inject licensed Rauschen B brand font at build time (#128) * feat: inject licensed Rauschen B brand font at build time The brand display font is licensed and must not live in this public repo. A prebuild step (scripts/fetch-font.sh) fetches the woff2 from the private droidconKE/private-fonts repo into gitignored public/fonts/, then it's loaded via @font-face and exposed as --font-display / .font-display. Auth resolves FONT_REPO_TOKEN (env or .env) -> `gh auth token`, and falls back to the CSS font stack so builds without access still succeed. Refs #125 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat: switch global font to Rauschen B site-wide Point --font-family and --font-slab at Rauschen B so the whole site adopts the brand font; Montserrat remains the fallback when the licensed file isn't present (no font access at build). Note: only the Book weight is available, so bold headings are faux-bolded until the Bold/Black cut is sourced from the brand kit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: explain FONT_REPO_TOKEN + private font repo in .env.example Give devs who don't know the private repo exists the context: it's optional (falls back to Montserrat), and the PAT only needs Contents: Read-only on droidconKE/private-fonts. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix: remove antigravity config file * docs: accurate color tokens from Figma export (green #00FF4F + blue #0055FF) Add the Droidcon Figma variable exports (public/docs/colors) and document the full green/blue ramps in the redesign plan. Neutrals/dark-mode inferred from the mockups. Flutter exports moved to the flutter repo. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat: rebrand color tokens — blue primary + green accent Remap the Tailwind palette to the 2026 brand colors from the Figma export (primary #0055FF, accent #00FF4F), retiring cyan/orange. Existing token names are kept (remapped) so nothing breaks; per-component cleanup follows in later phases. Adds full blue/green ramps (bg-blue-500, text-green-500…) and rounded-card radii. Refs #123 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor: rename droidcon-1 and droidcon-2 color palettes to green and blue for clarity * chore: remove bun.lock file * Phase-1: Navbar and Footer (#130) * feat: update NavBar logo paths and improve styling consistency * feat: update NavBar button style and remove inline background image from Home page * feat: enhance ToggleTheme component styling and accessibility * feat: update color palette and adjust active link styles for consistency * feat: adjust NavBar padding for improved layout consistency * feat: add bottom border to NavBar and adjust padding for main content * feat: update Tailwind CSS configuration to enhance animation and adjust accent color * feat: add Marquee component to enhance homepage with event highlights * feat: rebrand theme colors with new blue and green palettes and move marquee animation to global utilities * style: update background and text color utility classes to blue-50 and custom dark mode accent * feat: redesign footer component with new layout, logo, and updated typography * feat: add themed skyline background images to footer layout * refactor: remove footer border and update content alignment to bottom-end * refactor: standardize footer ticket button using updated btn-primary class and add btn-outline style * feat: comment out login functionality and dialog in navbar * Feat/phase 2 (#131) * feat: update NavBar logo paths and improve styling consistency * feat: update NavBar button style and remove inline background image from Home page * feat: enhance ToggleTheme component styling and accessibility * feat: update color palette and adjust active link styles for consistency * feat: adjust NavBar padding for improved layout consistency * feat: add bottom border to NavBar and adjust padding for main content * feat: update Tailwind CSS configuration to enhance animation and adjust accent color * feat: add Marquee component to enhance homepage with event highlights * feat: rebrand theme colors with new blue and green palettes and move marquee animation to global utilities * style: update background and text color utility classes to blue-50 and custom dark mode accent * feat: redesign footer component with new layout, logo, and updated typography * feat: add themed skyline background images to footer layout * refactor: remove footer border and update content alignment to bottom-end * refactor: standardize footer ticket button using updated btn-primary class and add btn-outline style * feat: redesign homepage banner with updated branding, call-to-action buttons, and conference details grid * feat: add About component with event details and link to more information * feat: redesign about section with new stats grid and layout structure * feat: redesign event types section with new layout and static card configuration * feat: remove Sponsor component and update SponsorsList with custom card styling * feat: replace inline sponsor rendering with SponsorCard component and update tier layout * refactor: implement responsive masonry gallery layout and update theme styling for Gallery and SponsorsList components * refactor: rewrite Gallery component to use masonry layout with a dedicated GalleryImage sub-component * feat: redesign community partners section with a grid layout and visual styling * refactor: update UI styling and remove hardcoded organizer data dependencies from home components * feat: redesign community partners section with a grid layout and decorative polka dot patterns * style: update border radius and padding consistency across About and EventTypes components * feat: replace event type images with custom SVG icons and update layout grid styling * feat: refine SponsorsList component styling and spacing * feat: increase navbar font size and update sponsors list with mock data on homepage * feat: update font size for Android254 and Kotlin Kenya headings in Organizers component * feat: remove unused image assets from new design * feat: center theme toggle button and add mock sponsor data to home page * feat: update button style for notifications prompt to use primary theme * feat: add venue information and link to map location in footer * Apply homepage review fixes - Android -> Mobile in hero/about/marquee copy - Flutter edition 2nd -> 3rd in About stats - SponsorsList: sponsor button under the "help make ... happen" header - Organizers: activate the API organizer logo grid using the sponsor cut-corner card design (smaller) - Get-your-ticket buttons (nav + banner): whitespace-nowrap - Past Events dropdown: w-max + nowrap (was wrapping) - Non-platinum sponsor cards slightly smaller (platinum unchanged) - Nav: consistent gap between Past Events and Get Ticket --------- Co-authored-by: Magak Emmanuel <emashmagak@gmail.com> * feat: remove login/auth, keep session bookmarks in localStorage (#133) Closes #132 - Drop Google OAuth + AuthContext providers and the axios Bearer interceptor - Delete Login, AuthContext, useStarSession and the API-backed StarIcon - Strip the token injection from every getServerSideProps - Remove @react-oauth/google and cookies-next deps - Reimplement session bookmarks + the My Sessions filter fully client-side via localStorage (no backend), scoped to the live sessions page * Feat/polish and propagate (#134) * feat: update about page design and assets * feat: update Value component to change background color for "Build relationships" section * feat: add custom_index page with mock sponsors and update sponsor section background color * feat: add diagonal stripe pattern to sponsor section dividers * Redesign sessions, speakers, session detail, about & sponsors (#135) * feat: redesign sessions, speakers, about & sponsors in the new brand language Propagate the 2026 rebrand across the inner pages: - Sessions: blue header card, horizontal day-tab pills, rounded cards with colored pills + halftone dots; blue border / green hover; My Sessions + star bookmarks; live filter drawer with click-outside + Escape - Session detail: block layout — gradient speaker block (duotone photo), green session block, ( Session )/( Speaker ) labels - Speakers: header card + duotone speaker cards, equal-height grid - Feedback: redesigned self-contained modal (branded panel), route-aware (session vs event feedback) - 404/error pages reworked into the design system - About: blue intro + green story card, organizing-team duotone cards - Sponsors: hero + gradient stats card (baked stats image replaced with editable stat cards), green CTA card; retained Newton's underline + stripes - Past-events pages moved onto the shared sessions shell * feat: update session images to new SVG format and enhance session layout --------- Co-authored-by: NewtonMutugi <newtonmut197@gmail.com> * fix: scope theme-toggle CSS + make session cards fully clickable - Rename the toggle dot/line classes per component (theme-toggle, ms-toggle, save-toggle) so the nav ThemeToggle no longer inherits the SessionToggles / SaveSession styles on sessions/detail pages (fixes the misaligned toggle) - Wrap the whole session card (grid + list) in the session link; star stops propagation so bookmarking doesn't navigate; service sessions stay inert - Add a real hover lift (-translate-y) that reads in dark mode too * chore: stop tracking .claude/ local settings * fix: isolate accent cards from the fixed nav; restore session-detail layout - Add `isolation: isolate` to the accent/green cards that layer content with z-10 over an absolute background (SessionDetails, about story card, sponsors CTA, home EventTypes). Without it their inner z-10 tied with the nav's z-10 and painted over it on scroll. - Restore the redesigned session-detail shell (dropped in the #135 merge conflict): plain back link + stacked blocks in s-container, no dark strip. * fix: site title reads 'Largest Mobile' not 'Largest Android' (og/twitter meta) * fix: meta description reads 'engineering of mobile applications' * fix: remove the unused push notification prompt and Firebase messaging stack (#137) The site prompted every first-time visitor for notification permission, but no push notifications are ever sent. Remove the modal along with the rest of the dead stack: the FCM topic-subscription API route, the Firebase app init, the background-message service worker, the NOTIFICATIONS constant and its now-empty module, the modal artwork, the firebase dependency, and the unused NEXT_PUBLIC_FIREBASE_* and NEXT_PUBLIC_MESSAGING_TOPIC entries in .env.example. react-toastify stays; SessionFeedback still uses it. Closes #136 * Feat/fix navbar issue (#138) * fix: adjust navbar layout for better responsiveness * fix: adjust navbar width based on event readiness * fix: correct navbar width condition for event readiness * Revised landing page, brand icons and social preview (#139) * feat: revised landing page, brand icons and social preview Rebuild the landing page against the revised design: - Hero: "Beyond Stacks" as live gradient text over the Spline cube, shortened subtitle, edition to 7TH - Event Types becomes "2026 Conf. Essentials" on a blue-green gradient, with the "More Stacks. All Mobile." strip - New "Conf. Highlights" section (Beyond the Sessions, Developer Days) - Sponsors: platinum, gold, then the rest ordered silver/bronze/snack, centre-biased when few - Community Partners reduced to the green card; footer rebuilt on the KICC halftone and the large wordmark Comment out the CFP entry points (hero button, Speakers card) rather than deleting them — both return next year. Regenerate every app icon and favicon from dcke-square, point og:image and twitter:image at dcke-cover, and move the PWA chrome off the pre-rebrand palette to #0055FF. Drop 2.8 MB of assets the redesign no longer references. Pin text colour with explicit dark: variants on fixed-colour cards: the global bare-p rule outranks a single utility class in dark mode. * fix: adjust background opacity for marquee component --------- Co-authored-by: NewtonMutugi <newtonmut197@gmail.com> * fix: drop the vertical divider from the About stat cards (#140) The design splits the 2x2 stat grid with a single horizontal hairline. The vertical border between columns was mine, not the design's. * refactor: update wording for clarity and conciseness in About and Team sections * feat: rebuild the About and Sponsors pages to the 2026 design (#142) About: merge the intro and stats into one card with the mascot and a two-column body, add the photo row, and give the intro, How it started and Organizing Team cards their green bottom fades. Tickets and Event Highlights are commented out for now, not deleted. Sponsors: photo-background hero, flat blue attendee card with the green-bordered stats panel overlapping it, and a tighter Value grid. Copy is unchanged throughout. --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: NewtonMutugi <newtonmut197@gmail.com> Co-authored-by: Newton Mutugi <84735867+NewtonMutugi@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #136.
The site asked every first-time visitor for notification permission, but I never actually send push notifications. It was a permission prompt for a channel with no traffic, and it was the first thing a visitor saw.
I removed the whole dead stack rather than just hiding the modal, since nothing else used any of it:
NotificationsPrompt.tsxand its render incomponents/layouts/default.tsxpages/api/notification.ts— the FCM topic-subscribe route, whose only caller was the modalfirebase/util/index.ts— Firebase init, only ever consumed by messagingpublic/firebase-messaging-sw.js— the background-message service workerutils/constants.ts— it held onlyNOTIFICATIONS, so the file was empty afterwardspublic/images/notif.svg— the modal artworkfirebasedependency, plus the six now-deadNEXT_PUBLIC_FIREBASE_*/NEXT_PUBLIC_MESSAGING_TOPICvars in.env.exampleKept
react-toastify—SessionFeedbackstill uses it.utils/helpers.tsstays too, sinceisClienthas three other consumers.Verified with
yarn lint(clean) andyarn build(succeeds). Theyarn.lockdiff is a Firebase-only prune.Based on
feat/home-redesign-planrather thandev, since I branched off it — merge #124 first and this retargets cleanly.One thing to note: visitors who already granted permission still have
firebase-messaging-sw.jsregistered in their browser. Deleting the file stops new registrations, but existing ones linger until they expire. Harmless given nothing is being sent — happy to add an explicit unregister if you'd rather flush them.